﻿using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication1.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        [HttpGet("aaa1")]
        public int Aaa()
        {
            //int[] ints = { 1, 2, 3, 4, 5, 6 };
            //return ints;

            string s = "asdfgasgqpo";
            Dictionary<char, int> pairs = new Dictionary<char, int>();
            for (int i = 0; i < s.Length; i++)
            {
                if (pairs.ContainsKey(s[i]))
                {
                    pairs[s[i]] += 1;
                }
                else
                {
                    pairs.Add(s[i], 0);
                }
            }
            for (int i = 0; i < pairs.Count; i++)
            {
                if (pairs[s[i]] == 0)
                    return i;
            }
            return -1;
        }
        [HttpGet("aaa")]
        public bool aa()
        {
            string s = "a";
            string t = "ab";
            Dictionary<char, int> pairs1 = new Dictionary<char, int>();
            Dictionary<char, int> pairs2 = new Dictionary<char, int>();
            if (s.Length != t.Length)
                return false;
            for (int i = 0; i < s.Length; i++)
            {
                if (pairs1.ContainsKey(s[i]))
                {
                    pairs1[s[i]] += 1;
                }
                else
                {
                    pairs1.Add(s[i], 0);
                }
                if (pairs2.ContainsKey(t[i]))
                {
                    pairs2[t[i]] += 1;
                }
                else
                {
                    pairs2.Add(t[i], 0);
                }
            }
            try
            {
                for (int i = 0; i < s.Length; i++)
                {
                    if (pairs1[s[i]] != pairs2[s[i]])
                        return false;
                }
            }
            catch
            {
                return false;
            }
            return true;
        }
        //public int k(int n)
        //{
        //    if (n == 1)
        //        return 1;
        //    if (n == 2)
        //    {
        //        return 2;
        //    }
        //    return k(n - 1) + k(n - 2);
        //}
        [HttpGet("bbbb")]
        public IList<IList<int>> a2()
        {
            int[] nums = new int[] { 0, 0, 0, 0 };
            Array.Sort(nums);
            IList<IList<int>> list = new List<IList<int>>();
            for (int i = 0; i < nums.Length; i++)
            {
                //if (i > 0 && nums[i] == nums[i - 1])
                //    continue;
                //if (nums[i] > 0)
                //    break;
                //for (int j = i+1; j < nums.Length; j++)
                //{
                //    if (j!=i+1 && nums[j] == nums[j-1])
                //        continue;

                //    int[] ll =nums.Skip(j+1).ToArray();
                //    int a = 0 - nums[i] - nums[j];
                //    if (ll.Contains(a))
                //    {
                //        list.Add(new List<int> { nums[i], nums[j], a });
                //    }
                //}

            }
            //for (int i = 0; i < list.Count(); i++)
            //{
            //    for (int j = i + 1; j < list.Count(); j++)
            //    {
            //        if (list[i][0] == list[j][0] && list[i][1] == list[j][1])
            //        {
            //            list.Remove(list[j]);
            //            j--;
            //        }
            //    }
            //}
            return list;
        }
        [HttpGet]
        public bool a3(int[] nums)
        {
            int a = int.MaxValue;
            int b = int.MaxValue;
            foreach (var item in nums)
            {
                if (item <= a)
                    a = item;
                else if (item <= b)
                    b = item;
                else
                    return true;
            }
            return false;
        }
        //public int Reverse(int x)
        //{
        //    long sum = 0;
        //    while (x != 0)
        //    {
        //        sum = sum * 10 + x % 10;
        //        x /= 10;
        //    }
        //    return (int)sum == sum ? (int)sum : 0;
        //}
    }
}
